package br.unidocs.servico;

import java.util.List;

import javax.ejb.Local;

import br.unidocs.modelo.entidade.Arquivo;
import br.unidocs.modelo.entidade.Tag;
import br.unidocs.modelo.entidade.Usuario;

@Local
// servico soh sera exposto para clientes locais, serviço mais leve - no mesmo
// sevidor de aplicação
// poderia ser @Remote - transfere todos os dados pela rede.
public interface ArquivoEJB {

	List<Arquivo> listaArquivos();

	Arquivo localizaArquivo(int id);

	Arquivo localizaArquivoParaDetalhamento(int id);

	Integer criaArquivo(String nomeArquivo, String descricao, String[] tags,
			Usuario usuario, byte[] binario);

	List<Arquivo> pesquisaPorTags(String[] tag);

	Arquivo atualizaArquivo(Arquivo a, List<Tag> tagsAAdicionar,
			List<Tag> tagsARemover);

	void excluiArquivo(Arquivo a);

}
